﻿using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Windows.Data;

namespace Mesuro.Graphing {

	[AttributeUsage( AttributeTargets.Class, Inherited = false, AllowMultiple = true )]
	public abstract class UserPropertyAttribute : Attribute {
		
		public string PropertyName { get; set; }

		private string _label = null;
		public string Label {
			get { return _label ?? PropertyName; }
			set { _label = value; }
		}

		public Type Converter { get; set; }

		public bool AsCheckBox { get; set; }
		public bool CheckboxThreeState { get; set; }

	}
	public sealed class AxisPropertyAttribute : UserPropertyAttribute {
		public AxisPropertyAttribute() { }

		public AxisPropertyAttribute( string propertyName ) {
			this.PropertyName = propertyName;
		}
	}
	public sealed class PlotPropertyAttribute : UserPropertyAttribute {
		public PlotPropertyAttribute() { }

		public PlotPropertyAttribute( string propertyName ) {
			this.PropertyName = propertyName;
		}
	}
}
